Skip to content

Conversation

@mark-fitzgerald
Copy link
Contributor

@mark-fitzgerald mark-fitzgerald commented Jan 6, 2026

Summary:

This PR implements the axe-core accessibility library, and automatically runs the checker. However, results are not shown in the Issues panel unless the toggle button is set "On". The reason for defaulting to "Off" is to provide a kind of feature flag option for this feature. The current accessibility results are somewhat noisy, in that content creators can't necessarily address all the issues that are discovered. Once this PR is implemented, time will be spent assessing the results of the scans and either resolving them or writing tickets for follow-up. At some future point, this automated scan will be defaulted to "On" for all content creators, and expanded to other editors (i.e. the Article and Assessments editors).

Issue: LEMS-3822

Test plan:

  1. Launch Editor Demo in Storybook, or view editor in ZND
  2. Open Issues panel at the top of the editor
  3. Toggle the accessibility checker switch (at the bottom of the issues panel)
Axe core toggle
  1. Make a change to the content
    • If no issues show, it may be necessary to add content that breaks accessibility to get a result
  2. Note that the accessibility issue(s) show in the panel
accessibility issue example
  1. Toggle the switch off
  2. Note that the accessibility issue(s) are removed from the panel

…ctions.

Update issues panel to display a11y issues.
Add button to issue panel for manual running of a11y check.
…accessibility checker (axe-core) in the exercise editor
…n to toggle/switch in editor for running axe-core.

Add a name to the iframe that contains the content preview so that referencing it is easier.
Adjust how axe-core results are surface via the toggle in the issues panel.
@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

🗄️ Schema Change: No Changes ✅

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

Size Change: +2.1 kB (+0.42%)

Total Size: 499 kB

Filename Size Change
packages/perseus-editor/dist/es/index.js 99.6 kB +2.1 kB (+2.15%)
ℹ️ View Unchanged
Filename Size
packages/kas/dist/es/index.js 20.8 kB
packages/keypad-context/dist/es/index.js 1 kB
packages/kmath/dist/es/index.js 5.98 kB
packages/math-input/dist/es/index.js 98.5 kB
packages/math-input/dist/es/strings.js 1.61 kB
packages/perseus-core/dist/es/index.item-splitting.js 12.1 kB
packages/perseus-core/dist/es/index.js 25.3 kB
packages/perseus-linter/dist/es/index.js 8.65 kB
packages/perseus-score/dist/es/index.js 9.25 kB
packages/perseus-utils/dist/es/index.js 403 B
packages/perseus/dist/es/index.js 200 kB
packages/perseus/dist/es/strings.js 7.78 kB
packages/pure-markdown/dist/es/index.js 1.39 kB
packages/simple-markdown/dist/es/index.js 6.72 kB

compressed-size-action

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

🛠️ Item Splitting: No Changes ✅

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

npm Snapshot: Published

Good news!! We've packaged up the latest commit from this PR (3a23d90) and published it to npm. You
can install it using the tag PR3167.

Example:

pnpm add @khanacademy/perseus@PR3167

If you are working in Khan Academy's frontend, you can run the below command.

./dev/tools/bump_perseus_version.ts -t PR3167

If you are working in Khan Academy's webapp, you can run the below command.

./dev/tools/bump_perseus_version.js -t PR3167

…ages to only have one occurrence in the description.

Account for multiple preview iFrames in the DOM in the editor.
… for iframe (reference a variable instead of hard-coding it).

Add debug message for axe-core options.
…r for iframe to distinguish the question preview from all the other iframes on the page.
Base automatically changed from deploy/perseus-january-2026 to main January 8, 2026 20:15
@mark-fitzgerald mark-fitzgerald requested a review from a team January 14, 2026 20:06
@mark-fitzgerald mark-fitzgerald marked this pull request as ready for review January 14, 2026 20:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants